import axios from 'axios'
export function request (config) {
  //创建axios实例
  const instance = axios.create({
    baseURL: 'http://152.136.185.210:7878/api/m5',
    timeout: 5000
  })

  //axios拦截器：
  //1、请求拦截
  // instance.interceptors.request.use(config => {
  //     return config
  // }, err => {
  //     //请求拦截中错误拦截较少，通常都是配置相关的拦截
  //     //可能的错误比如请求超时，可以将页面跳转到一个错误页面中。
  //     return err
  // })

  //2、响应拦截
  instance.interceptors.response.use(
    res => {
      //可以将得到的结果数据过滤掉一些没有的信息
      return res.data
    },
    err => {
      //响应的失败拦截中，可以根据status判断报错的错误码，跳转到不同的错误提示页面
      console.log(err)
      if (err && err.response) {
        switch (err.response.status) {
          case 400:
            err.message = '请求错误'
            break
          case 401:
            err.message = '未授权的访问'
            break
        }
      }
      return err
    }
  )

  //发送真正的网络请求  最后返回的本身就是一个promise对象
  return instance(config)
  // return instance(config) ==>  return Promise

  //为什么要这样包装，如果axios被替换了，
  //就直接在这里面写新框架的代码，然后返回一个Promise对象，对象中放的就是你封装好的新框架的代码
  //后期便于维护
}

export function userRequest (config) {
  //创建axios实例
  const instance = axios.create({
    baseURL: 'https://api.cat-shop.penkuoer.com/api/v1/auth',
    timeout: 5000
  })

  //2、响应拦截
  instance.interceptors.response.use(
    res => {
      //可以将得到的结果数据过滤掉一些没有的信息
      return res.data
    },
    err => {
      //响应的失败拦截中，可以根据status判断报错的错误码，跳转到不同的错误提示页面
      console.log(err)
      if (err && err.response) {
        switch (err.response.status) {
          case 400:
            err.message = '请求错误'
            break
          case 401:
            err.message = '未授权的访问'
            break
        }
      }
      return err
    }
  )

  //发送真正的网络请求  最后返回的本身就是一个promise对象
  return instance(config)
}
